#ifndef FESCREENANIMATION_PRIVATE_H
#define FESCREENANIMATION_PRIVATE_H
#include "fecore_global.h"
#include <QAbstractAnimation>
#include <QRect>
#include <QEasingCurve>

class QWidget;
class FeScreenAnimation: public QAbstractAnimation
{
	Q_OBJECT
public:
	FeScreenAnimation(QWidget *currentScreen, QWidget *nextScreen, QObject *parent=0);
	~FeScreenAnimation();

	int duration(void) const;
	void setDuration(int);

	QEasingCurve easingCurve() const;
	void setEasingCurve(const QEasingCurve &easing);

protected:
	virtual void updateCurrentTime(int currentTime);
	virtual void updateDirection(QAbstractAnimation::Direction direction);
	virtual void updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState);

	int dur;
	QWidget *cur_w;
	QWidget *next_w;
	bool next_raised;
	QEasingCurve ec;
	QRect geometry;
};

#endif // FESCREENANIMATION_PRIVATE_H